// pre-define fields in the form
var name = new Ext.form.TextField( {
	fieldLabel : 'Nombre',
	allowBlank : false,
	blankText : 'El campo es requerido',
	name : 'name',
	anchor : '90%'
});

var description = new Ext.form.TextArea( {
	fieldLabel : 'Descripcion',
	allowBlank : false,
	blankText : 'El campo es requerido',
	name : 'description',
	anchor : '90%'
});

var client = new Ext.form.TextField( {
	fieldLabel : 'Cliente',
	allowBlank : false,
	blankText : 'El campo es requerido',
	name : 'client',
	anchor : '90%'
});

var start = new Ext.form.DateField( {
	fieldLabel : 'Inicio',
	name : 'start',
	format : 'Y-m-d'
});

var end = new Ext.form.DateField( {
	fieldLabel : 'Fin',
	name : 'end',
	format : 'Y-m-d'
});

var formPanel = new Ext.form.FormPanel( {
	id : 'add-project-panel',
	frame : true,
	title : 'Agregar Proyecto',
	collapsible : true,
	region : 'east',
	labelAlign : 'right',
	labelWidth : 85,
	width : 300,
	height : 300,
	waitMsgTarget : true,
	url : '/projects',

	items : [name, description, client, start, end]
});

formPanel.addButton( {
	text : 'Agregar',
	handler : function() {
		if (formPanel.form.isValid()) {
			xmlDocument = '<?xml version="1.0" encoding="UTF-8" ?><project>';
			xmlDocument += '<name>' + name.getValue() + '</name>';
			xmlDocument += '<description>' + description.getValue() + '</description>';
			xmlDocument += '<client>' + client.getValue() + '</client>';
			xmlDocument += '<start>' + start.getRawValue() + '</start>';
			xmlDocument += '<end>' + end.getRawValue() + '</end>';
			xmlDocument += '</project>';
			$.ajax( {
				type : "post",
				url : "/projects",
				dataType : "xml",
				data : { xml : xmlDocument },
				complete : function(xml) {
					if (xml.status != 201) {
						Ext.MessageBox.alert('Error',
								'El Proyecto no pudo ser agregado');
					} else {
						ds.reload();
					}
				}
			});
		} else {
			Ext.MessageBox.alert('Errores', 'Por favor, arregla los errores.');
		}
	}
});
